const fs = require('fs/promises'); // 引入fs/promises模块，用于读取文件，返回一个Promise对象
// 读取多个文件，顺序执行，等待前一个完成再执行下一个。
const processFiles = async()=>{
    try{
        // 按顺序读取文件
        const content1 = await fs.readFile('file1.txt', 'utf-8'); // 读取file1.txt
        const content2 = await fs.readFile('file2.txt', 'utf-8'); // 读取file2.txt
        const content3 = await fs.readFile('file3.txt', 'utf-8'); // 读取file3.txt

        // 拼接内容
        console.log('第一次拼接结果：',content1+content2+content3); // 打印拼接结果
    }
    catch(err){
        console.log(err);
    }
    //分割线 用循环写50个-
    console.log('分割线'.padStart(50,'-'));
}

processFiles(); // 调用processFiles函数，读取文件test.txt，成功后调用then函数，失败后调用catch函数

const processFilesParallel = async()=>{
    try{
        // 同时读取3个文件
        const [content1, content2, content3] = await Promise.all([ // Promise.all()方法，同时读取3个文件，返回一个Promise对象
            fs.readFile('file1.txt', 'utf-8'), // 读取file1.txt
            fs.readFile('file2.txt', 'utf-8'), // 读取file2.txt
            fs.readFile('file3.txt', 'utf-8') // 读取file3.txt
        ]);// 数组解构，将3个文件的内容分别赋值给content1, content2, content3

        // 拼接内容
        console.log('第二次拼接结果：',content1+content2+content3); // 打印拼接结果
    }
    catch(err){
        console.log(err);
    }
    //分割线 用循环写50个-
    console.log('分割线'.padStart(50,'-'));
}

processFilesParallel(); // 调用processFilesParallel函数，读取文件test.txt，成功后调用then函数，失败后调用catch函数